package ai.assist.common.businesss.mongo.entity;

import com.anwen.mongo.annotation.ID;
import com.anwen.mongo.annotation.collection.CollectionField;
import com.anwen.mongo.annotation.collection.CollectionName;
import com.anwen.mongo.enums.IdTypeEnum;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 系统部门
 * @TableName sys_dept
 */
@CollectionName(value ="sys_dept")
@Data
public class SysDept implements Serializable {

    @ID(type = IdTypeEnum.OBJECT_ID)
    @CollectionField("_id")
    private Long id;


    /**
     * 父级id
     */
    @CollectionField(value = "dept_pid")
    private Long deptPid;

    /**
     * 部门层级信息
     */
    @CollectionField(value = "dept_path")
    private String deptPath;

    /**
     * 部门类型
     */
    @CollectionField(value = "dept_type")
    private Integer deptType;

    /**
     * 状态(1:正常；0:不可用,-1已删除)
     */
    @CollectionField(value = "dept_status")
    private Integer deptStatus;

    /**
     * 部门编码
     */
    @CollectionField(value = "dept_no")
    private Long deptNo;

    /**
     * 部门层级:1系统管理,2区级部门,3街道级部门,4街道下级部门
     */
    @CollectionField(value = "dept_level")
    private Integer deptLevel;

    /**
     * 部门名称
     */
    @CollectionField(value = "dept_name")
    private String deptName;

    /**
     * 部门简称
     */
    @CollectionField(value = "dept_short_name")
    private String deptShortName;

    /**
     * 部门曾用名
     */
    @CollectionField(value = "dept_used_name")
    private String deptUsedName;

    /**
     * 街道编码
     */
    @CollectionField(value = "dept_street_no")
    private Long deptStreetNo;

    /**
     *
     */
    @CollectionField(value = "dept_pno")
    private String deptPno;

    /**
     * 部门排序
     */
    @CollectionField(value = "dept_rank")
    private Integer deptRank;

    /**
     * 办公电话
     */
    @CollectionField(value = "dept_tel")
    private String deptTel;

    /**
     * 联系电话
     */
    @CollectionField(value = "dept_phone")
    private String deptPhone;

    /**
     * 办公地址
     */
    @CollectionField(value = "dept_address")
    private String deptAddress;

    /**
     * 附件地址
     */
    @CollectionField(value = "dept_file")
    private String deptFile;

    /**
     * 更新时间
     */
    @CollectionField(value = "dept_update_time")
    private Date deptUpdateTime;

    @CollectionField(exist = false)
    private static final long serialVersionUID = 1L;
}
